/**
 * 下方追加型のリアクティブウインドウ
 * @param i_elem
 * divタグを指定
 * @param i_param
 * パラメータを指定。
 * @return
 */
//リアクティブウインドウ(下追加)
function ReactiveListL(i_elem,i_param)
{
	var _apm=i_param;
	var _t_padiv;
	function initDiv(i_elem)
	{
		var s=i_elem.style;
		s.border="solid 1px black";
		s.overflow="auto";
		s.margin="0px";
	}
	var max_elem=5;
	this.addItem=function(v)
	{
		var e=document.createElement("div");
		e.innerHTML="this is a pen"+v;
		//必要に応じて削除
		if (i_elem.childNodes.length > max_elem){
			var h=i_elem.childNodes[0].offsetHeight;
			i_elem.scrollTop-=h;
			cpos-=h;
			i_elem.removeChild(i_elem.childNodes[0]);
		}
		i_elem.appendChild(e);
		//top目的地を設定
		epos=e.offsetTop+e.offsetHeight-i_elem.offsetHeight;
		if(epos<0){
			epos=0;
		}
		if(epos!=cpos){
			time_id=setInterval(timerProc,_apm.interval);
		}
	}
	//スクロール位置を合せる。
	var time_id,epos,cpos;
	cpos=0;
	function timerProc()
	{
		if(epos==cpos){
			clearInterval(time_id);
			time_id=null;
			return;
		}
		cpos=(epos+cpos*_apm.m)/_apm.d;
		if(Math.abs(cpos-epos)<_apm.l){
			cpos=epos;
		}
		i_elem.scrollTop=parseInt(cpos);
	}
	initDiv(i_elem);
}